/*
 *  ＰＳＧ曲名、効果音名定義。
 */

#include <vpsg.h>
#include "adpcm.h"

#ifndef    __PSGDEFINE__
#define    __PSGDEFINE__

/*
 * PSG music + effect data の先頭アドレス
 */
#define PSG_STARTADDRESS  0x30000
#define PSG_PRIADDRESS    0x3001c

/*
 * ＭＵＳＩＣ
 */

#define MU_TITLE        0x00    /* タイトル画面 */
#define MU_STAGE1       0x01    /* ステージ１ */
#define MU_STAGE2       0x02    /* ステージ２ */
#define MU_STAGE3       0x03    /* ＢＯＳＳ */
#define MU_ENDING       0x04    /* エンディング */
#define MU_GAMESTART    0x05    /* ステージ開始 */
#define MU_GAMEOVER     0x06    /* ゲームオーバー */
#define MU_YOUWIN       0x07    /* 勝ち */
#define MU_SELECT       0x08    /* 機種選択時 */

/*
 * エフェクト
 */

#define SE_IDLE         0x03    /* アイドリング */
#define SE_ENGINE       0x05    /* エンジン音 */
#define SE_ENGINE_STOP  0x09    /* エンジンオフ音 */
#define SE_FALL         0x00    /* 落ちて行く音 */

/*
 * タイトル・オプション設定画面
 */

#define SE_CURMOVE      0x01    /* カーソル移動音 */
#define SE_CURSEL       0x02    /* 選択音 */

extern unsigned char cStageMusic[];

/*
 * ＰＳＧ演奏・停止マクロ
 * エフェクト用チャンネルとしてＣＨ６を使っていることが条件
 */

#define PSGTitle()        { psg_musicno(MU_TITLE); }
#define PSGGameOver()     { psg_musicno(MU_GAMEOVER); }
#define PSGStage(stage)   { psg_musicno(cStageMusic[stage]); }
#define PSGPlay(number)   { psg_musicno(number); }
#define PSGFadeOut()      { psg_musicfdout(4); }
#define PSGSeOn(number)   { psg_effectstop(); while(psg_effectch()==CH6); psg_effectno(number); }
#define PSGSeOff()        { psg_effectstop(); }
#define PSGClear()        { psg_allstop(); }

#endif /* __PSGDEFINE__ */
